package com.ayf.payment.game.api.service.platform.impl;

import com.ayf.payment.game.api.dto.platform.SmsChannelConfigDTO;
import com.ayf.payment.game.api.entity.platform.SmsChannelConfig;
import com.ayf.payment.game.api.mapper.platform.SmsChannelConfigMapper;
import com.ayf.payment.game.api.service.platform.SmsChannelConfigService;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;

import javax.annotation.Resource;
import java.util.List;

@Service
public class SmsChannelConfigServiceImpl implements SmsChannelConfigService {

    @Resource
    private SmsChannelConfigMapper smsChannelConfigMapper;

    @Override
    public SmsChannelConfig selectSmsConfig() {
        SmsChannelConfig smsChannelConfig = new SmsChannelConfig();
        smsChannelConfig.setStatus(1);
        List<SmsChannelConfig> list = smsChannelConfigMapper.select(smsChannelConfig);
        if (!CollectionUtils.isEmpty(list)) {
            return list.get(0);
        }
        return null;
    }

    @Override
    public List<SmsChannelConfig> getSmsChannelConfigList() {
        return smsChannelConfigMapper.selectAll();
    }

    @Override
    public void updateSmsChannelStatus(SmsChannelConfigDTO smsChannelConfigDTO) {
        SmsChannelConfig smsChannelConfig = new SmsChannelConfig();
        smsChannelConfig.setStatus(1);
        smsChannelConfig = smsChannelConfigMapper.selectOne(smsChannelConfig);
        if (smsChannelConfig != null){
            smsChannelConfig.setStatus(0);
            smsChannelConfigMapper.updateByPrimaryKeySelective(smsChannelConfig);
        }
        smsChannelConfig = new SmsChannelConfig();
        smsChannelConfig.setId(smsChannelConfigDTO.getId());
        smsChannelConfig.setStatus(smsChannelConfigDTO.getStatus());
        smsChannelConfigMapper.updateByPrimaryKeySelective(smsChannelConfig);
    }

    @Override
    public void updateSmsChannel(SmsChannelConfigDTO smsChannelConfigDTO) {
        SmsChannelConfig smsChannelConfig = new SmsChannelConfig();
        smsChannelConfig.setId(smsChannelConfigDTO.getId());
        smsChannelConfig.setChannelConfig(smsChannelConfigDTO.getChannelConfig());
        smsChannelConfigMapper.updateByPrimaryKeySelective(smsChannelConfig);
    }
}
